# Created by 黄景涛
# DATE: 2024/12/10
import pytest
import json
from utils.auth.login import login
from utils.log.logger import logger


def pytest_sessionstart(session):
    """
    执行时机：整个pytest测试会话开始前
    :param session: 会话
    :return:
    """




def pytest_collection_modifyitems(config, items):
    """
    执行时机：收集完所有测试item后      --一般用来对items加工
    :param config: 配置对象
    :param items: 被收集的所有item
    :return:
    """
    for item in items:
        item._nodeid = json.loads(f'"{item.nodeid}"')
        print(item.nodeid)


def pytest_runtest_logreport(report):
    report.nodeid = json.loads(f'"{report.nodeid}"')
    if report.when == 'call':
        if report.outcome == 'passed':
            pass
        elif report.outcome == 'failed':
            pass


def pytest_runtest_makereport(item):
    """ """
    pass


def pytest_sessionfinish(session, exitstatus):
    """
    执行时机：整个pytest测试会话结束后   -- 一般用来做一些资源清理
    :param session:
    :param exitstatus:
    :return:
    """
    pass


def pytest_terminal_summary(terminalreporter, exitstatus, config):
    """
    执行时机：比pytest_sessionfinish函数晚一些执行
    :param terminalreporter: 终端输出的报告对象
    :param exitstatus: pytest运行结束返回的状态码 eg:0-通常表示所有测试都通过; eg:1-表示有测试失败; eg:2-表示有错误发生等
    :param config: pytest的配置对象
    :return:
    """
    pass
